package com.example.consumer.listener;


import cn.hutool.core.lang.Console;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * topic 发送消息队列的名称  consumerGroup 表示你要订阅那个组的消息
 * 第一轮接收数据  grp组2的处理
 *
 * 1.如果两个消费者group和topic都一样，则二者轮循接收消息
 *  * 2.如果两个消费者topic一样，而group不一样，则消息变成广播机制
 *  * RocketMQListener<>泛型必须和接收的消息类型相同
 * @author mtl
 */

@Component
@RocketMQMessageListener(topic = "top-master",consumerGroup = "consumer_grp_02")
public class MyRocketMQDemo implements RocketMQListener<String> {


    @Resource
    RocketMQTemplate rocketMQTemplate;

    @Override
    public void onMessage(String s) {
        //创建了订单 存到队列中
        Console.log("读取到消息{}",s);
        rocketMQTemplate.syncSend("tp_consumer_2", MessageBuilder.withPayload(s+"--->放到延迟队列再次发送").build(),200,3);
        //后续做数据库减库存操作
    }
}
